#include "online.h"
#include "ui_online.h"
#include <QDebug>
#include "tcpclient.h"

Online::Online(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Online)
{
    ui->setupUi(this);
}

Online::~Online()
{
    delete ui;
}

void Online::showUser(PDU *pdu)//此处提取数据，每32拷贝一份，也即是name的大小
{
    if(pdu == nullptr) return;
    uint uiSize = pdu->uiMsgLen / 32;//个数
    char caTmp[32];
    for(uint i = 0;i <uiSize;++i)
    {
        memcpy(caTmp,(char*)(pdu->caMsg)+i*32,32);
        ui->online_lw->addItem(caTmp);//listwidgt
    }

}

void Online::on_addFriend_pb_clicked()
{
    QListWidgetItem *pItem =  ui->online_lw->currentItem();//返回一个标记
    //qDebug()<<pItem->text();//打印点击的用户名,仅做测试
    QString strPerUsrName = pItem->text();//点击的用户名
    QString strLoginName =  TcpClient::getInstance().loginName();
    PDU *pdu = mkPDU(0);//姓名在32个字节，cadata给了64，无需申请多余
    pdu->uiMsgType = ENUM_MSG_TYPE_ADD_FRIEND_REQUEST;
    memcpy(pdu->caData,strPerUsrName.toStdString().c_str(),strPerUsrName.size());//要加的人的名字
    memcpy(pdu->caData+32,strLoginName.toStdString().c_str(),strLoginName.size());//你的名字
    TcpClient::getInstance().getTcpSocket().write((char*)pdu,pdu->uiPDULen);//通过socket发送出去
    free(pdu);
    pdu = nullptr;    
}
